//
//  HJChatManagerProtocol.h
//  KaiChat
//
//  Created by lx on 2023/10/20.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@class HJChatMessageModel, HJChatGroupModel, HJChatFriendModel;

@protocol HJChatManagerProtocol <NSObject>

@optional

- (void)sendMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendTextMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendImageMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendVoiceMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendFileMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendVideoMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;
- (void)sendMediaMessageWithModel:(HJChatMessageModel *)messageModel begin:(void (^__nullable)(HJChatMessageModel * model))begin completion:(void (^__nullable)(id  _Nullable response, NSError  * _Nullable error))completion;

- (void)searchGroupByKeyword:(NSString *)keyword completion:(void (^)(NSArray <HJChatGroupModel *> * _Nullable datas))completion;
- (void)searchFriendByKeyword:(NSString *)keyword completion:(void (^)( NSArray <HJChatFriendModel *>* _Nullable datas))completion;

@end

NS_ASSUME_NONNULL_END
